package GameWork;

public class Game {
    /*
    编码题：
     1、创建游戏角色类，该类有体力、魔法力、职业、经验、等级等属性，职业只有骑士和魔法师两种。
    创建打怪方法。如果是骑士消耗体力80，魔法力20。如果是魔法师消耗体力30，魔法力100。
    当体力和魔法力太低时，不能打怪。打怪以后，经验增加50，经验每满1000，等级上升一级，体力和魔法力上限上升10点、体力和魔法力全满。
    创建客栈休息方法。将体力和魔法力恢复到体力和魔法力上限。
    创建自我介绍方法，说明当前角色的职业、体力、魔法力、等级、经验等。
    创建测试类。新建骑士和魔法师两个对象，然后，调用相关的方法。
    */
    public int hp;
    public int maxHp;
    public int mp;
    public int maxMp;
    public String job;
    public int ex;
    public int rank;

    public Game() {
    }


    public Game(int hp, int mp, String job, int ex, int rank) {
        this.maxHp = hp;
        this.maxMp = mp;
        this.hp = this.maxHp;
        this.mp = this.maxMp;
        this.job = job;
        this.ex = ex;
        this.rank = rank;
    }


    public void hit(){
        if (job.equals("骑士")) {
            if (this.hp < 80 || this.mp < 20) {
                System.out.println("体力（魔力不足），无法打怪");
                return;
            }
            this.hp -= 80;
            this.mp -= 20;
        }
        if (job.equals("魔法师")) {
            if (this.hp < 30||this.mp < 100){
                System.out.println("体力（魔力不足），无法打怪");
                return;
            }
            this.hp -= 30;
            this.mp -= 100;
        }
        int before = this.ex/1000;
        this.ex += 50;
        int after =this.ex/1000;
        if (after > before){
            rank++;
            this.maxHp += 10;
            this.maxMp += 10;
            this.hp = this.maxHp;
            this.mp = this.maxMp;
        }
    }


    public void resume(){
        this.hp = this.maxHp;
        this.mp = this.maxMp;
    }


    public void getInform(){
        System.out.println("职业："+this.job+"   体力值："+this.hp+"/"+this.maxHp+"   魔力值："+this.mp+"/"+this.maxMp+
                "   等级："+rank +"   经验值；"+this.ex);
    }
}
